minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
↳ QTRS
↳ Overlay + Local Confluence
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
MINUS(x, y) → COND(ge(x, s(y)), x, y)
COND(true, x, y) → MINUS(x, s(y))
GE(s(u), s(v)) → GE(u, v)
MINUS(x, y) → GE(x, s(y))
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → COND(ge(x, s(y)), x, y)
COND(true, x, y) → MINUS(x, s(y))
GE(s(u), s(v)) → GE(u, v)
MINUS(x, y) → GE(x, s(y))
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
GE(s(u), s(v)) → GE(u, v)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
MINUS(x, y) → COND(ge(x, s(y)), x, y)
COND(true, x, y) → MINUS(x, s(y))
minus(x, y) → cond(ge(x, s(y)), x, y)
cond(false, x, y) → 0
cond(true, x, y) → s(minus(x, s(y)))
ge(u, 0) → true
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
MINUS(x, y) → COND(ge(x, s(y)), x, y)
COND(true, x, y) → MINUS(x, s(y))
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(u, 0) → true
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
minus(x0, x1)
cond(false, x0, x1)
cond(true, x0, x1)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
MINUS(x, y) → COND(ge(x, s(y)), x, y)
COND(true, x, y) → MINUS(x, s(y))
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(u, 0) → true
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))
(1) (MINUS(x2, s(x3))=MINUS(x4, x5) ⇒ MINUS(x4, x5)≥COND(ge(x4, s(x5)), x4, x5))
(2) (MINUS(x2, s(x3))≥COND(ge(x2, s(s(x3))), x2, s(x3)))
(3) (COND(ge(x6, s(x7)), x6, x7)=COND(true, x8, x9) ⇒ COND(true, x8, x9)≥MINUS(x8, s(x9)))
(4) (s(x7)=x12∧ge(x6, x12)=true ⇒ COND(true, x6, x7)≥MINUS(x6, s(x7)))
(5) (ge(x14, x15)=true∧s(x7)=s(x15)∧(∀x16:ge(x14, x15)=true∧s(x16)=x15 ⇒ COND(true, x14, x16)≥MINUS(x14, s(x16))) ⇒ COND(true, s(x14), x7)≥MINUS(s(x14), s(x7)))
(6) (true=true∧s(x7)=0 ⇒ COND(true, x17, x7)≥MINUS(x17, s(x7)))
(7) (ge(x14, x15)=true ⇒ COND(true, s(x14), x15)≥MINUS(s(x14), s(x15)))
(8) (ge(x19, x20)=true∧(ge(x19, x20)=true ⇒ COND(true, s(x19), x20)≥MINUS(s(x19), s(x20))) ⇒ COND(true, s(s(x19)), s(x20))≥MINUS(s(s(x19)), s(s(x20))))
(9) (true=true ⇒ COND(true, s(x21), 0)≥MINUS(s(x21), s(0)))
(10) (COND(true, s(x19), x20)≥MINUS(s(x19), s(x20)) ⇒ COND(true, s(s(x19)), s(x20))≥MINUS(s(s(x19)), s(s(x20))))
(11) (COND(true, s(x21), 0)≥MINUS(s(x21), s(0)))
POL(0) = 1
POL(COND(x1, x2, x3)) = -1 - x1 + x2 - x3
POL(MINUS(x1, x2)) = -1 + x1 - x2
POL(c) = -2
POL(false) = 1
POL(ge(x1, x2)) = 0
POL(s(x1)) = 1 + x1
POL(true) = 0
The following pairs are in Pbound:
COND(true, x, y) → MINUS(x, s(y))
The following rules are usable:
COND(true, x, y) → MINUS(x, s(y))
ge(u, v) → ge(s(u), s(v))
false → ge(0, s(v))
true → ge(u, 0)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonInfProof
↳ QDP
↳ DependencyGraphProof
MINUS(x, y) → COND(ge(x, s(y)), x, y)
ge(0, s(v)) → false
ge(s(u), s(v)) → ge(u, v)
ge(u, 0) → true
ge(x0, 0)
ge(0, s(x0))
ge(s(x0), s(x1))